<?php
	require_once(dirname(__FILE__) . '/../simpletest/autorun.php');
	require_once('include.php');
	
	class InstituicaoTest extends UnitTestCase {
		
		function testCriaModel(){
			$instituicao = new Instituicao("UFRJ");
			$this->assertEqual($instituicao->nome, "UFRJ");
		}
		
	    function testCamposVazios() {
	    	$_POST = array(
	    	"nome" => "",
	    	"email" => "",
	    	"cnpj" => "",
	    	"endereco" => "",
	    	"senha" => "",
			);
	        $erros = ValidadorInstituicao::instituicao_inserir_validacao();
	        $this->assertTrue(!empty($erros));
	    }
		
		function testCamposErrados() {
	    	$_POST = array(
	    	"nome" => "",
	    	"email" => "..aasssa@@???().com",
	    	"cnpj" => "dsiajosadi",
	    	"endereco" => "",
	    	"senha" => ""
			);
	        $erros = ValidadorInstituicao::instituicao_inserir_validacao();
	        $this->assertTrue(!empty($erros));
	    }
		
		function testConfirmacaoCampos() {
	    	$_POST = array(
	    	"nome" => "",
	    	"email" => "email@gmail.com",
	    	"confirma_email" => "confirma_email@gmail.com",
	    	"cnpj" => "111.111.111-11",
	    	"endereco" => "",
	    	"senha" => "1234",
	    	"confirma_senha" => "4321"
			);
	        $erros = ValidadorInstituicao::instituicao_inserir_validacao();
	        $this->assertTrue(!empty($erros["confirma_senha"]));
	        $this->assertTrue(!empty($erros["confirma_email"]));
	    }
		
		function testCadastroEditarDeletar() {
			GLOBAL $instituicao_id;
			
			$_POST = array(
			"nome" => "UFRJ",
	    	"email" => "ufrj@gmail.com",
	    	"confirma_email" => "ufrj@gmail.com",
	    	"cnpj" => "111.111.111-11",
	    	"endereco" => "Fundão",
	    	"senha" => "1234",
	    	"confirma_senha" => "1234"
			);
			$instituicao_controller = new CRUDInstituicaoController();
			
			$instituicoes = $instituicao_controller->listarInstituicoes();
			$num_instituicoes1 = count($instituicoes);
			
			$sucesso_adicionar = $instituicao_controller->adicionarInstituicao(false);
			
			$this->assertTrue($sucesso_adicionar);
			
			$_GET["id"] = mysql_insert_id(); // Pega o último id inserido
			$instituicao_id = $_GET["id"];
			$_POST = array(
			"nome" => "UFRJ",
	    	"email" => "ufrj@gmail.com",
	    	"cnpj" => "111.111.111-11",
	    	"endereco" => "Fundão",
	    	"senha" => "1234",
			);
			$sucesso_editar = $instituicao_controller->editarInstituicao(false);
			
			$this->assertTrue($sucesso_editar);
			
			$instituicoes = $instituicao_controller->listarInstituicoes();
			$num_instituicoes2 = count($instituicoes);
			
			$this->assertEqual($num_instituicoes1 + 1, $num_instituicoes2);

			$sucesso_deletar = $instituicao_controller->deletarInstituicao(false);
			
			$this->assertTrue($sucesso_deletar);
			
			$instituicoes = $instituicao_controller->listarInstituicoes();
			$num_instituicoes3 = count($instituicoes);
			
			$this->assertEqual($num_instituicoes1, $num_instituicoes3);
		}
		
	}
?>